创建 Recharge 对象

发起一次充值请求时需要创建一个新的 recharge 对象,获取一个可用的 charge 对象用于客户端向第三方渠道发起支付请求。如果使用测试模式的 API Key,则不会发生真实交易。当充值成功后,Ping++ 会发送 Webhooks 通知。

:此接口暂不支持跨境渠道。

请求参数描述
APP_ID required string对应 app 对象的 id,该参数仅需要填写在请求地址内,查看 如何获取App ID
user required string充值目标 user 对象的 id,64 位以内。
charge[amount] required integer支付金额,单位为分,取值范围 0~1000000000。
charge[channel] required string支付使用的第三方支付渠道,详情参考支付渠道属性值。除此之外,还支持自定义渠道 custom,该渠道不需要真实支付,仅对用户 "0" 有效。
charge[order_no] required string商户订单号,适配每个渠道对此参数的要求,必须在商户的系统内唯一。长度限制在 8~20 位。
charge[subject] required string商品标题,该参数最长为 32 个 Unicode 字符。银联全渠道限制在 32 个字节;支付宝部分渠道不支持特殊字符;cmpay 渠道限制为 1~25 个 Unicode 字符;isv_lite 渠道限制为:1~20 个 unicode 长度,不允许以下特殊字符串"\n\r,,~!@#¥%……&*()【】「」"
charge[body] required string描述信息,该参数最长为 128 个 Unicode 字符,yeepay_wap 对于该参数长度限制为 100 个 Unicode 字符。
charge[time_expire] optional timestamp订单失效时间的 Unix 时间戳。时间范围在订单创建后的 1 分钟到 15 天,默认为 1 天,创建时间以 Ping++ 服务器时间为准。微信对该参数的时间范围在订单创建后的 1 分钟到 7 天,默认为 2 小时;upacp、upacp_pc、upacp_wap、cp_b2b、applepay_upacp 渠道对该参数的有效值限制为 1 小时内;upacp_b2b 对该参数的有效值限制为 1 天内;upacp_qr 渠道对该参数的有效期默认为 1 天,最大为 30 天;此参数对 paypalscan 类渠道无效。
charge[client_ip] optional string发起支付请求客户端的 IP 地址,支持 IPv4、IPv6 格式。
charge[extra] conditional hash特定渠道发起交易时需要的额外参数,以及部分渠道支付成功返回的额外参数,详细参考支付渠道 extra 参数说明
user_fee optional integer充值收取的用户手续费,单位为分,不得大于 charge[amount],不可和 balance_bonus[amount] 同时使用,默认 0。
balance_bonus[amount] optional integer充值赠送的余额,单位为分,不可和 user_fee 同时传,默认 0。
from_user optional string充值来源 user 对象的 id,默认和 user 相同,即给自己充值。
description optional string附加说明,最多 255 个 Unicode 字符。
metadata optional hash详见 元数据

返回

返回一个 recharge 对象,或者返回一个错误,详见 错误

定义

POST https://api.pingxx.com/v1/apps/{APP_ID}/recharges
待补充
待补充
待补充
待补充
待补充
待补充
待补充

请求示例

curl https://api.pingxx.com/v1/apps/app_1Gqj58ynP0mHeX1q/recharges \
-H "Pingplusplus-Signature: {SIGNATURE}" \
-H "Pingplusplus-Request-Timestamp: 1496728534" \
-u sk_test_ibbTe5jLGCi5rzfH4OqPW9KC: \
-d '{
  "user": "test_user_02",
  "user_fee": 100,
  "from_user": "test_user_01",
  "charge": {
    "amount":1000,
    "channel":"upacp",
    "time_expire": 1496826528,
    "order_no":"20161000167",
    "subject": "测试订单007测试订单007&",
    "body": "订单内容007",
    "client_ip":"127.0.0.1",
    "extra":{}
  },
  "client_ip": "127.0.0.1",
  "description": "Your description"
}'
待补充
待补充
待补充
待补充
待补充
待补充
待补充

返回示例

{
  "id": "2001706060000002372",
  "object": "recharge",
  "app": "app_1Gqj58ynP0mHeX1q",
  "created": "1496740128",
  "livemode": false,
  "amount": 1000,
  "succeeded": false,
  "time_succeeded": null,
  "refunded": false,
  "user": "test_user_02",
  "from_user": "test_user_01",
  "user_fee": 100,
  "charge": {
    "id": "ch_SejbHOrzbjvPunjHmD08SCi9",
    "object": "charge",
    "created": 1496740128,
    "livemode": false,
    "paid": false,
    "refunded": false,
    "reversed": false,
    "app": "app_1Gqj58ynP0mHeX1q",
    "channel": "upacp",
    "order_no": "20161000167",
    "client_ip": "127.0.0.1",
    "amount": 10000,
    "amount_settle": 10000,
    "currency": "cny",
    "subject": "测试订单007测试订单007&",
    "body": "订单内容007",
    "extra": {},
    "time_paid": null,
    "time_expire": 1496826528,
    "time_settle": null,
    "transaction_no": null,
    "refunds": {
      "object": "list",
      "url": "/v1/charges/ch_SejbHOrzbjvPunjHmD08SCi9/refunds",
      "has_more": false,
      "data": []
    },
    "amount_refunded": 0,
    "failure_code": null,
    "failure_msg": null,
    "metadata": {},
    "credential": {
      "object": "credential",
      "upacp": {
        "tn": "201409161028470000000",
        "mode": "01"
      }
    },
    "description": null
  },
  "balance_bonus": {},
  "refunds": {},
  "balance_transaction": "",
  "description": "",
  "metadata": {}
}